package qq.message;

import static io.grpc.stub.ClientCalls.asyncUnaryCall;
import static io.grpc.stub.ClientCalls.asyncServerStreamingCall;
import static io.grpc.stub.ClientCalls.asyncClientStreamingCall;
import static io.grpc.stub.ClientCalls.asyncBidiStreamingCall;
import static io.grpc.stub.ClientCalls.blockingUnaryCall;
import static io.grpc.stub.ClientCalls.blockingServerStreamingCall;
import static io.grpc.stub.ClientCalls.futureUnaryCall;
import static io.grpc.MethodDescriptor.generateFullMethodName;
import static io.grpc.stub.ServerCalls.asyncUnaryCall;
import static io.grpc.stub.ServerCalls.asyncServerStreamingCall;
import static io.grpc.stub.ServerCalls.asyncClientStreamingCall;
import static io.grpc.stub.ServerCalls.asyncBidiStreamingCall;

@javax.annotation.Generated("by gRPC proto compiler")
public class EmulatorGrpc {

  private EmulatorGrpc() {}

  public static final String SERVICE_NAME = "qq.message.Emulator";

  // Static method descriptors that strictly reflect the proto.
  @io.grpc.ExperimentalApi
  public static final io.grpc.MethodDescriptor<qq.message.Qqmessage.EmulatorPrivateMsg,
      qq.message.Qqmessage.Gvoid> METHOD_PRIVATE_MSG =
      io.grpc.MethodDescriptor.create(
          io.grpc.MethodDescriptor.MethodType.UNARY,
          generateFullMethodName(
              "qq.message.Emulator", "privateMsg"),
          io.grpc.protobuf.ProtoUtils.marshaller(qq.message.Qqmessage.EmulatorPrivateMsg.getDefaultInstance()),
          io.grpc.protobuf.ProtoUtils.marshaller(qq.message.Qqmessage.Gvoid.getDefaultInstance()));
  @io.grpc.ExperimentalApi
  public static final io.grpc.MethodDescriptor<qq.message.Qqmessage.EmulatorGroupMsg,
      qq.message.Qqmessage.Gvoid> METHOD_GROUP_MSG =
      io.grpc.MethodDescriptor.create(
          io.grpc.MethodDescriptor.MethodType.UNARY,
          generateFullMethodName(
              "qq.message.Emulator", "groupMsg"),
          io.grpc.protobuf.ProtoUtils.marshaller(qq.message.Qqmessage.EmulatorGroupMsg.getDefaultInstance()),
          io.grpc.protobuf.ProtoUtils.marshaller(qq.message.Qqmessage.Gvoid.getDefaultInstance()));
  @io.grpc.ExperimentalApi
  public static final io.grpc.MethodDescriptor<qq.message.Qqmessage.EmulatorDiscussMsg,
      qq.message.Qqmessage.Gvoid> METHOD_DISCUSS_MSG =
      io.grpc.MethodDescriptor.create(
          io.grpc.MethodDescriptor.MethodType.UNARY,
          generateFullMethodName(
              "qq.message.Emulator", "discussMsg"),
          io.grpc.protobuf.ProtoUtils.marshaller(qq.message.Qqmessage.EmulatorDiscussMsg.getDefaultInstance()),
          io.grpc.protobuf.ProtoUtils.marshaller(qq.message.Qqmessage.Gvoid.getDefaultInstance()));
  @io.grpc.ExperimentalApi
  public static final io.grpc.MethodDescriptor<qq.message.Qqmessage.Gvoid,
      qq.message.Qqmessage.Gint64> METHOD_GET_LOGIN_QQ =
      io.grpc.MethodDescriptor.create(
          io.grpc.MethodDescriptor.MethodType.UNARY,
          generateFullMethodName(
              "qq.message.Emulator", "getLoginQQ"),
          io.grpc.protobuf.ProtoUtils.marshaller(qq.message.Qqmessage.Gvoid.getDefaultInstance()),
          io.grpc.protobuf.ProtoUtils.marshaller(qq.message.Qqmessage.Gint64.getDefaultInstance()));
  @io.grpc.ExperimentalApi
  public static final io.grpc.MethodDescriptor<qq.message.Qqmessage.Gvoid,
      qq.message.Qqmessage.Gstring> METHOD_GET_LOGIN_NICK =
      io.grpc.MethodDescriptor.create(
          io.grpc.MethodDescriptor.MethodType.UNARY,
          generateFullMethodName(
              "qq.message.Emulator", "getLoginNick"),
          io.grpc.protobuf.ProtoUtils.marshaller(qq.message.Qqmessage.Gvoid.getDefaultInstance()),
          io.grpc.protobuf.ProtoUtils.marshaller(qq.message.Qqmessage.Gstring.getDefaultInstance()));

  public static EmulatorStub newStub(io.grpc.Channel channel) {
    return new EmulatorStub(channel);
  }

  public static EmulatorBlockingStub newBlockingStub(
      io.grpc.Channel channel) {
    return new EmulatorBlockingStub(channel);
  }

  public static EmulatorFutureStub newFutureStub(
      io.grpc.Channel channel) {
    return new EmulatorFutureStub(channel);
  }

  public static interface Emulator {

    public void privateMsg(qq.message.Qqmessage.EmulatorPrivateMsg request,
        io.grpc.stub.StreamObserver<qq.message.Qqmessage.Gvoid> responseObserver);

    public void groupMsg(qq.message.Qqmessage.EmulatorGroupMsg request,
        io.grpc.stub.StreamObserver<qq.message.Qqmessage.Gvoid> responseObserver);

    public void discussMsg(qq.message.Qqmessage.EmulatorDiscussMsg request,
        io.grpc.stub.StreamObserver<qq.message.Qqmessage.Gvoid> responseObserver);

    public void getLoginQQ(qq.message.Qqmessage.Gvoid request,
        io.grpc.stub.StreamObserver<qq.message.Qqmessage.Gint64> responseObserver);

    public void getLoginNick(qq.message.Qqmessage.Gvoid request,
        io.grpc.stub.StreamObserver<qq.message.Qqmessage.Gstring> responseObserver);
  }

  public static interface EmulatorBlockingClient {

    public qq.message.Qqmessage.Gvoid privateMsg(qq.message.Qqmessage.EmulatorPrivateMsg request);

    public qq.message.Qqmessage.Gvoid groupMsg(qq.message.Qqmessage.EmulatorGroupMsg request);

    public qq.message.Qqmessage.Gvoid discussMsg(qq.message.Qqmessage.EmulatorDiscussMsg request);

    public qq.message.Qqmessage.Gint64 getLoginQQ(qq.message.Qqmessage.Gvoid request);

    public qq.message.Qqmessage.Gstring getLoginNick(qq.message.Qqmessage.Gvoid request);
  }

  public static interface EmulatorFutureClient {

    public com.google.common.util.concurrent.ListenableFuture<qq.message.Qqmessage.Gvoid> privateMsg(
        qq.message.Qqmessage.EmulatorPrivateMsg request);

    public com.google.common.util.concurrent.ListenableFuture<qq.message.Qqmessage.Gvoid> groupMsg(
        qq.message.Qqmessage.EmulatorGroupMsg request);

    public com.google.common.util.concurrent.ListenableFuture<qq.message.Qqmessage.Gvoid> discussMsg(
        qq.message.Qqmessage.EmulatorDiscussMsg request);

    public com.google.common.util.concurrent.ListenableFuture<qq.message.Qqmessage.Gint64> getLoginQQ(
        qq.message.Qqmessage.Gvoid request);

    public com.google.common.util.concurrent.ListenableFuture<qq.message.Qqmessage.Gstring> getLoginNick(
        qq.message.Qqmessage.Gvoid request);
  }

  public static class EmulatorStub extends io.grpc.stub.AbstractStub<EmulatorStub>
      implements Emulator {
    private EmulatorStub(io.grpc.Channel channel) {
      super(channel);
    }

    private EmulatorStub(io.grpc.Channel channel,
        io.grpc.CallOptions callOptions) {
      super(channel, callOptions);
    }

    @java.lang.Override
    protected EmulatorStub build(io.grpc.Channel channel,
        io.grpc.CallOptions callOptions) {
      return new EmulatorStub(channel, callOptions);
    }

    @java.lang.Override
    public void privateMsg(qq.message.Qqmessage.EmulatorPrivateMsg request,
        io.grpc.stub.StreamObserver<qq.message.Qqmessage.Gvoid> responseObserver) {
      asyncUnaryCall(
          getChannel().newCall(METHOD_PRIVATE_MSG, getCallOptions()), request, responseObserver);
    }

    @java.lang.Override
    public void groupMsg(qq.message.Qqmessage.EmulatorGroupMsg request,
        io.grpc.stub.StreamObserver<qq.message.Qqmessage.Gvoid> responseObserver) {
      asyncUnaryCall(
          getChannel().newCall(METHOD_GROUP_MSG, getCallOptions()), request, responseObserver);
    }

    @java.lang.Override
    public void discussMsg(qq.message.Qqmessage.EmulatorDiscussMsg request,
        io.grpc.stub.StreamObserver<qq.message.Qqmessage.Gvoid> responseObserver) {
      asyncUnaryCall(
          getChannel().newCall(METHOD_DISCUSS_MSG, getCallOptions()), request, responseObserver);
    }

    @java.lang.Override
    public void getLoginQQ(qq.message.Qqmessage.Gvoid request,
        io.grpc.stub.StreamObserver<qq.message.Qqmessage.Gint64> responseObserver) {
      asyncUnaryCall(
          getChannel().newCall(METHOD_GET_LOGIN_QQ, getCallOptions()), request, responseObserver);
    }

    @java.lang.Override
    public void getLoginNick(qq.message.Qqmessage.Gvoid request,
        io.grpc.stub.StreamObserver<qq.message.Qqmessage.Gstring> responseObserver) {
      asyncUnaryCall(
          getChannel().newCall(METHOD_GET_LOGIN_NICK, getCallOptions()), request, responseObserver);
    }
  }

  public static class EmulatorBlockingStub extends io.grpc.stub.AbstractStub<EmulatorBlockingStub>
      implements EmulatorBlockingClient {
    private EmulatorBlockingStub(io.grpc.Channel channel) {
      super(channel);
    }

    private EmulatorBlockingStub(io.grpc.Channel channel,
        io.grpc.CallOptions callOptions) {
      super(channel, callOptions);
    }

    @java.lang.Override
    protected EmulatorBlockingStub build(io.grpc.Channel channel,
        io.grpc.CallOptions callOptions) {
      return new EmulatorBlockingStub(channel, callOptions);
    }

    @java.lang.Override
    public qq.message.Qqmessage.Gvoid privateMsg(qq.message.Qqmessage.EmulatorPrivateMsg request) {
      return blockingUnaryCall(
          getChannel().newCall(METHOD_PRIVATE_MSG, getCallOptions()), request);
    }

    @java.lang.Override
    public qq.message.Qqmessage.Gvoid groupMsg(qq.message.Qqmessage.EmulatorGroupMsg request) {
      return blockingUnaryCall(
          getChannel().newCall(METHOD_GROUP_MSG, getCallOptions()), request);
    }

    @java.lang.Override
    public qq.message.Qqmessage.Gvoid discussMsg(qq.message.Qqmessage.EmulatorDiscussMsg request) {
      return blockingUnaryCall(
          getChannel().newCall(METHOD_DISCUSS_MSG, getCallOptions()), request);
    }

    @java.lang.Override
    public qq.message.Qqmessage.Gint64 getLoginQQ(qq.message.Qqmessage.Gvoid request) {
      return blockingUnaryCall(
          getChannel().newCall(METHOD_GET_LOGIN_QQ, getCallOptions()), request);
    }

    @java.lang.Override
    public qq.message.Qqmessage.Gstring getLoginNick(qq.message.Qqmessage.Gvoid request) {
      return blockingUnaryCall(
          getChannel().newCall(METHOD_GET_LOGIN_NICK, getCallOptions()), request);
    }
  }

  public static class EmulatorFutureStub extends io.grpc.stub.AbstractStub<EmulatorFutureStub>
      implements EmulatorFutureClient {
    private EmulatorFutureStub(io.grpc.Channel channel) {
      super(channel);
    }

    private EmulatorFutureStub(io.grpc.Channel channel,
        io.grpc.CallOptions callOptions) {
      super(channel, callOptions);
    }

    @java.lang.Override
    protected EmulatorFutureStub build(io.grpc.Channel channel,
        io.grpc.CallOptions callOptions) {
      return new EmulatorFutureStub(channel, callOptions);
    }

    @java.lang.Override
    public com.google.common.util.concurrent.ListenableFuture<qq.message.Qqmessage.Gvoid> privateMsg(
        qq.message.Qqmessage.EmulatorPrivateMsg request) {
      return futureUnaryCall(
          getChannel().newCall(METHOD_PRIVATE_MSG, getCallOptions()), request);
    }

    @java.lang.Override
    public com.google.common.util.concurrent.ListenableFuture<qq.message.Qqmessage.Gvoid> groupMsg(
        qq.message.Qqmessage.EmulatorGroupMsg request) {
      return futureUnaryCall(
          getChannel().newCall(METHOD_GROUP_MSG, getCallOptions()), request);
    }

    @java.lang.Override
    public com.google.common.util.concurrent.ListenableFuture<qq.message.Qqmessage.Gvoid> discussMsg(
        qq.message.Qqmessage.EmulatorDiscussMsg request) {
      return futureUnaryCall(
          getChannel().newCall(METHOD_DISCUSS_MSG, getCallOptions()), request);
    }

    @java.lang.Override
    public com.google.common.util.concurrent.ListenableFuture<qq.message.Qqmessage.Gint64> getLoginQQ(
        qq.message.Qqmessage.Gvoid request) {
      return futureUnaryCall(
          getChannel().newCall(METHOD_GET_LOGIN_QQ, getCallOptions()), request);
    }

    @java.lang.Override
    public com.google.common.util.concurrent.ListenableFuture<qq.message.Qqmessage.Gstring> getLoginNick(
        qq.message.Qqmessage.Gvoid request) {
      return futureUnaryCall(
          getChannel().newCall(METHOD_GET_LOGIN_NICK, getCallOptions()), request);
    }
  }

  public static io.grpc.ServerServiceDefinition bindService(
      final Emulator serviceImpl) {
    return io.grpc.ServerServiceDefinition.builder(SERVICE_NAME)
      .addMethod(
        METHOD_PRIVATE_MSG,
        asyncUnaryCall(
          new io.grpc.stub.ServerCalls.UnaryMethod<
              qq.message.Qqmessage.EmulatorPrivateMsg,
              qq.message.Qqmessage.Gvoid>() {
            @java.lang.Override
            public void invoke(
                qq.message.Qqmessage.EmulatorPrivateMsg request,
                io.grpc.stub.StreamObserver<qq.message.Qqmessage.Gvoid> responseObserver) {
              serviceImpl.privateMsg(request, responseObserver);
            }
          }))
      .addMethod(
        METHOD_GROUP_MSG,
        asyncUnaryCall(
          new io.grpc.stub.ServerCalls.UnaryMethod<
              qq.message.Qqmessage.EmulatorGroupMsg,
              qq.message.Qqmessage.Gvoid>() {
            @java.lang.Override
            public void invoke(
                qq.message.Qqmessage.EmulatorGroupMsg request,
                io.grpc.stub.StreamObserver<qq.message.Qqmessage.Gvoid> responseObserver) {
              serviceImpl.groupMsg(request, responseObserver);
            }
          }))
      .addMethod(
        METHOD_DISCUSS_MSG,
        asyncUnaryCall(
          new io.grpc.stub.ServerCalls.UnaryMethod<
              qq.message.Qqmessage.EmulatorDiscussMsg,
              qq.message.Qqmessage.Gvoid>() {
            @java.lang.Override
            public void invoke(
                qq.message.Qqmessage.EmulatorDiscussMsg request,
                io.grpc.stub.StreamObserver<qq.message.Qqmessage.Gvoid> responseObserver) {
              serviceImpl.discussMsg(request, responseObserver);
            }
          }))
      .addMethod(
        METHOD_GET_LOGIN_QQ,
        asyncUnaryCall(
          new io.grpc.stub.ServerCalls.UnaryMethod<
              qq.message.Qqmessage.Gvoid,
              qq.message.Qqmessage.Gint64>() {
            @java.lang.Override
            public void invoke(
                qq.message.Qqmessage.Gvoid request,
                io.grpc.stub.StreamObserver<qq.message.Qqmessage.Gint64> responseObserver) {
              serviceImpl.getLoginQQ(request, responseObserver);
            }
          }))
      .addMethod(
        METHOD_GET_LOGIN_NICK,
        asyncUnaryCall(
          new io.grpc.stub.ServerCalls.UnaryMethod<
              qq.message.Qqmessage.Gvoid,
              qq.message.Qqmessage.Gstring>() {
            @java.lang.Override
            public void invoke(
                qq.message.Qqmessage.Gvoid request,
                io.grpc.stub.StreamObserver<qq.message.Qqmessage.Gstring> responseObserver) {
              serviceImpl.getLoginNick(request, responseObserver);
            }
          })).build();
  }
}
